#pragma once
#include "../CGIPrefix.h"

namespace Alice{
    class CGIVulkanDevice;
    class CGIVulkanCommandBuffer;
    class CGIVulkanQueue
    {
    public:
        VkQueue Queue;
        uint32 FamilyIndex;
        uint32 QueueIndex;
        CGIVulkanDevice* mDevice;
        CGIVulkanQueue(CGIVulkanDevice* InDevice, uint32 InFamilyIndex);
        inline uint32 GetFamilyIndex() const
        {
            return FamilyIndex;
        }

        inline uint32 GetQueueIndex() const
        {
            return QueueIndex;
        }
        void Submit(CGIVulkanCommandBuffer* CmdBuffer, uint32 NumSignalSemaphores = 0, VkSemaphore* SignalSemaphores = nullptr);
    };
}